[INFO] cloning repository https://github.com/March-deng/zero2prod
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/March-deng/zero2prod" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMarch-deng%2Fzero2prod", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMarch-deng%2Fzero2prod'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 820d192f7a4dc7651d810b28476148fc29cea385
[INFO] checking March-deng/zero2prod against master#9610dfe5a9a731ced1ea4923ecbd0c57fe367898 for beta-170-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMarch-deng%2Fzero2prod" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/March-deng/zero2prod on toolchain 9610dfe5a9a731ced1ea4923ecbd0c57fe367898
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] removed /workspace/builds/worker-4-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/March-deng/zero2prod
[INFO] finished tweaking git repo https://github.com/March-deng/zero2prod
[INFO] tweaked toml for git repo https://github.com/March-deng/zero2prod written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/March-deng/zero2prod already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tracing-bunyan-formatter v0.3.2
[INFO] [stderr]   Downloaded validator v0.14.0
[INFO] [stderr]   Downloaded deadpool v0.9.4
[INFO] [stderr]   Downloaded fake v2.3.0
[INFO] [stderr]   Downloaded rust-ini v0.17.0
[INFO] [stderr]   Downloaded claim v0.5.0
[INFO] [stderr]   Downloaded actix-web-flash-messages v0.3.2
[INFO] [stderr]   Downloaded actix-session v0.6.2
[INFO] [stderr]   Downloaded actix-web-lab v0.15.2
[INFO] [stderr]   Downloaded argon2 v0.3.4
[INFO] [stderr]   Downloaded dlv-list v0.2.3
[INFO] [stderr]   Downloaded validator_types v0.14.0
[INFO] [stderr]   Downloaded ordered-multimap v0.3.1
[INFO] [stderr]   Downloaded config v0.12.0
[INFO] [stderr]   Downloaded linkify v0.8.1
[INFO] [stderr]   Downloaded wiremock v0.5.13
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7be439ea00424434d737ffb1a0544cddd0de97f00c9ae7f148ebe3f840ff6b98
[INFO] running `Command { std: "docker" "start" "-a" "7be439ea00424434d737ffb1a0544cddd0de97f00c9ae7f148ebe3f840ff6b98", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7be439ea00424434d737ffb1a0544cddd0de97f00c9ae7f148ebe3f840ff6b98", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7be439ea00424434d737ffb1a0544cddd0de97f00c9ae7f148ebe3f840ff6b98", kill_on_drop: false }`
[INFO] [stdout] 7be439ea00424434d737ffb1a0544cddd0de97f00c9ae7f148ebe3f840ff6b98
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c672abe1bcc625ec1bd61906cd1383128620f553be85a6389806f3435898cea3
[INFO] running `Command { std: "docker" "start" "-a" "c672abe1bcc625ec1bd61906cd1383128620f553be85a6389806f3435898cea3", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.124
[INFO] [stderr]    Compiling proc-macro2 v1.0.37
[INFO] [stderr]    Compiling syn v1.0.91
[INFO] [stderr]    Compiling memchr v2.4.1
[INFO] [stderr]    Compiling log v0.4.16
[INFO] [stderr]    Compiling parking_lot_core v0.9.2
[INFO] [stderr]     Checking tracing-core v0.1.26
[INFO] [stderr]     Checking futures-io v0.3.21
[INFO] [stderr]    Compiling futures-util v0.3.21
[INFO] [stderr]     Checking slab v0.4.6
[INFO] [stderr]     Checking unicode-normalization v0.1.19
[INFO] [stderr]    Compiling indexmap v1.8.1
[INFO] [stderr]     Checking aho-corasick v0.7.18
[INFO] [stderr]    Compiling quote v1.0.18
[INFO] [stderr]    Compiling jobserver v0.1.24
[INFO] [stderr]     Checking getrandom v0.2.6
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]     Checking mio v0.8.2
[INFO] [stderr]     Checking parking_lot v0.12.0
[INFO] [stderr]     Checking num_cpus v1.13.1
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]     Checking socket2 v0.4.4
[INFO] [stderr]     Checking ahash v0.7.6
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking idna v0.2.3
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]     Checking regex v1.5.5
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]    Compiling paste v1.0.7
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking universal-hash v0.4.1
[INFO] [stderr]     Checking cipher v0.3.0
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]     Checking local-waker v0.1.2
[INFO] [stderr]    Compiling zstd-safe v4.1.4+zstd.1.5.2
[INFO] [stderr]    Compiling encoding_rs v0.8.31
[INFO] [stderr]     Checking alloc-no-stdlib v2.0.3
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]    Compiling zstd-sys v1.6.3+zstd.1.5.2
[INFO] [stderr]     Checking alloc-stdlib v0.2.1
[INFO] [stderr]    Compiling openssl-sys v0.9.73
[INFO] [stderr]     Checking polyval v0.5.3
[INFO] [stderr]     Checking hkdf v0.12.3
[INFO] [stderr]    Compiling crypto-common v0.1.3
[INFO] [stderr]    Compiling block-buffer v0.10.2
[INFO] [stderr]     Checking sha2 v0.10.2
[INFO] [stderr]     Checking sha-1 v0.10.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.8
[INFO] [stderr]    Compiling time-macros v0.2.4
[INFO] [stderr]    Compiling pin-project-lite v0.2.9
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]     Checking num_threads v0.1.5
[INFO] [stderr]    Compiling http v0.2.6
[INFO] [stderr]     Checking miniz_oxide v0.5.1
[INFO] [stderr]    Compiling digest v0.10.3
[INFO] [stderr]     Checking ghash v0.4.4
[INFO] [stderr]     Checking brotli-decompressor v2.3.2
[INFO] [stderr]     Checking actix-service v2.0.2
[INFO] [stderr]     Checking actix-utils v3.0.0
[INFO] [stderr]     Checking aes v0.7.5
[INFO] [stderr]     Checking ctr v0.8.0
[INFO] [stderr]     Checking time v0.3.9
[INFO] [stderr]    Compiling bytestring v1.0.0
[INFO] [stderr]     Checking aead v0.4.3
[INFO] [stderr]    Compiling cookie v0.16.0
[INFO] [stderr]    Compiling standback v0.2.17
[INFO] [stderr]    Compiling unicase v2.6.0
[INFO] [stderr]    Compiling firestorm v0.5.0
[INFO] [stderr]    Compiling proc-macro-hack v0.5.19
[INFO] [stderr]    Compiling webpki v0.21.4
[INFO] [stderr]    Compiling tokio v1.17.0
[INFO] [stderr]     Checking aes-gcm v0.9.4
[INFO] [stderr]     Checking brotli v3.3.4
[INFO] [stderr]     Checking flate2 v1.0.23
[INFO] [stderr]     Checking language-tags v0.3.2
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling crossbeam-queue v0.3.5
[INFO] [stderr]    Compiling sct v0.6.1
[INFO] [stderr]    Compiling const_fn v0.4.9
[INFO] [stderr]    Compiling openssl v0.10.40
[INFO] [stderr]    Compiling rustls v0.19.1
[INFO] [stderr]    Compiling anyhow v1.0.57
[INFO] [stderr]    Compiling parking_lot_core v0.8.5
[INFO] [stderr]     Checking webpki v0.22.0
[INFO] [stderr]    Compiling time v0.2.27
[INFO] [stderr]    Compiling native-tls v0.2.10
[INFO] [stderr]    Compiling rustls v0.20.4
[INFO] [stderr]     Checking unicode-xid v0.2.2
[INFO] [stderr]     Checking event-listener v2.5.2
[INFO] [stderr]    Compiling serde_derive v1.0.136
[INFO] [stderr]    Compiling tokio-macros v1.7.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.21
[INFO] [stderr]    Compiling futures-macro v0.3.21
[INFO] [stderr]    Compiling thiserror-impl v1.0.30
[INFO] [stderr]    Compiling derive_more v0.99.17
[INFO] [stderr]     Checking tracing v0.1.34
[INFO] [stderr]     Checking thiserror v1.0.30
[INFO] [stderr]    Compiling async-trait v0.1.53
[INFO] [stderr]    Compiling actix-macros v0.2.3
[INFO] [stderr]    Compiling time-macros-impl v0.1.2
[INFO] [stderr]    Compiling openssl-macros v0.1.0
[INFO] [stderr]    Compiling actix-rt v2.7.0
[INFO] [stderr]    Compiling tokio-rustls v0.22.0
[INFO] [stderr]     Checking time-macros v0.1.1
[INFO] [stderr]     Checking want v0.3.0
[INFO] [stderr]     Checking local-channel v0.1.2
[INFO] [stderr]     Checking futures-executor v0.3.21
[INFO] [stderr]     Checking nom v7.1.1
[INFO] [stderr]     Checking tokio-util v0.7.1
[INFO] [stderr]     Checking actix-server v2.1.1
[INFO] [stderr]     Checking h2 v0.3.13
[INFO] [stderr]     Checking actix-codec v0.5.0
[INFO] [stderr]     Checking serde v1.0.136
[INFO] [stderr]    Compiling mime_guess v2.0.4
[INFO] [stderr]    Compiling parking_lot v0.11.2
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking sct v0.7.0
[INFO] [stderr]     Checking time v0.1.44
[INFO] [stderr]    Compiling dirs-sys v0.3.7
[INFO] [stderr]     Checking http-body v0.4.4
[INFO] [stderr]    Compiling cookie v0.15.1
[INFO] [stderr]     Checking ahash v0.4.7
[INFO] [stderr]     Checking itoa v0.4.8
[INFO] [stderr]     Checking openssl-probe v0.1.5
[INFO] [stderr]     Checking hashbrown v0.9.1
[INFO] [stderr]    Compiling url v2.2.2
[INFO] [stderr]     Checking chrono v0.4.19
[INFO] [stderr]    Compiling dirs v4.0.0
[INFO] [stderr]     Checking serde_json v1.0.79
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking actix-router v0.5.0
[INFO] [stderr]     Checking either v1.6.1
[INFO] [stderr]    Compiling itertools v0.10.3
[INFO] [stderr]     Checking hyper v0.14.18
[INFO] [stderr]     Checking uuid v0.8.2
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]    Compiling actix-web-codegen v4.0.0
[INFO] [stderr]    Compiling futures-intrusive v0.4.0
[INFO] [stderr]    Compiling pest_generator v2.1.3
[INFO] [stderr]    Compiling sqlformat v0.1.8
[INFO] [stderr]     Checking futures v0.3.21
[INFO] [stderr]    Compiling sqlx-rt v0.5.13
[INFO] [stderr]    Compiling tokio-stream v0.1.8
[INFO] [stderr]    Compiling pin-project-internal v1.0.10
[INFO] [stderr]    Compiling hashlink v0.7.0
[INFO] [stderr]    Compiling atoi v0.4.0
[INFO] [stderr]    Compiling stringprep v0.1.2
[INFO] [stderr]    Compiling webpki-roots v0.21.1
[INFO] [stderr]    Compiling md-5 v0.10.1
[INFO] [stderr]     Checking dlv-list v0.2.3
[INFO] [stderr]     Checking psl-types v2.0.10
[INFO] [stderr]     Checking arc-swap v1.5.0
[INFO] [stderr]    Compiling sqlx-core v0.5.13
[INFO] [stderr]    Compiling heck v0.4.0
[INFO] [stderr]     Checking publicsuffix v2.1.1
[INFO] [stderr]     Checking ordered-multimap v0.3.1
[INFO] [stderr]    Compiling pest_derive v2.1.0
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking pin-project v1.0.10
[INFO] [stderr]     Checking tokio-rustls v0.23.3
[INFO] [stderr]     Checking bstr v0.2.17
[INFO] [stderr]     Checking tokio-native-tls v0.3.0
[INFO] [stderr]     Checking combine v4.6.4
[INFO] [stderr]     Checking tokio-util v0.6.10
[INFO] [stderr]     Checking matchers v0.1.0
[INFO] [stderr]     Checking csv-core v0.1.10
[INFO] [stderr]     Checking tracing-log v0.1.3
[INFO] [stderr]    Compiling claim v0.5.0
[INFO] [stderr]     Checking cache-padded v1.2.0
[INFO] [stderr]     Checking askama_escape v0.10.3
[INFO] [stderr]     Checking linked-hash-map v0.5.4
[INFO] [stderr]     Checking http-range v0.1.5
[INFO] [stderr]     Checking base64ct v1.0.1
[INFO] [stderr]     Checking dtoa v0.4.8
[INFO] [stderr]     Checking tracing-subscriber v0.3.11
[INFO] [stderr]     Checking yaml-rust v0.4.5
[INFO] [stderr]     Checking password-hash v0.3.2
[INFO] [stderr]     Checking concurrent-queue v1.2.2
[INFO] [stderr]     Checking csv v1.1.6
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]     Checking cookie_store v0.15.1
[INFO] [stderr]     Checking hyper-rustls v0.23.0
[INFO] [stderr]     Checking tracing-futures v0.2.5
[INFO] [stderr]     Checking validator_types v0.14.0
[INFO] [stderr]     Checking rust-ini v0.17.0
[INFO] [stderr]     Checking toml v0.5.9
[INFO] [stderr]     Checking ron v0.7.0
[INFO] [stderr]     Checking webpki-roots v0.22.3
[INFO] [stderr]     Checking gethostname v0.2.3
[INFO] [stderr]     Checking blake2 v0.10.4
[INFO] [stderr]     Checking rustls-pemfile v0.3.0
[INFO] [stderr]     Checking waker-fn v1.1.0
[INFO] [stderr]     Checking zeroize v1.5.4
[INFO] [stderr]     Checking fastrand v1.7.0
[INFO] [stderr]     Checking pathdiff v0.2.1
[INFO] [stderr]    Compiling http-types v2.12.0
[INFO] [stderr]     Checking parking v2.0.0
[INFO] [stderr]     Checking ipnet v2.5.0
[INFO] [stderr]     Checking sha3 v0.10.1
[INFO] [stderr]     Checking futures-lite v1.12.0
[INFO] [stderr]     Checking argon2 v0.3.4
[INFO] [stderr]     Checking reqwest v0.11.10
[INFO] [stderr]     Checking secrecy v0.8.0
[INFO] [stderr]     Checking config v0.12.0
[INFO] [stderr]     Checking tracing-bunyan-formatter v0.3.2
[INFO] [stderr]     Checking validator v0.14.0
[INFO] [stderr]     Checking async-channel v1.6.1
[INFO] [stderr]     Checking serde-aux v3.0.1
[INFO] [stderr]     Checking serde_qs v0.8.5
[INFO] [stderr]     Checking deadpool-runtime v0.1.2
[INFO] [stderr]     Checking unicode-segmentation v1.9.0
[INFO] [stderr]     Checking retain_mut v0.1.7
[INFO] [stderr]     Checking infer v0.2.3
[INFO] [stderr]     Checking urlencoding v2.1.0
[INFO] [stderr]     Checking htmlescape v0.3.1
[INFO] [stderr]     Checking deadpool v0.9.4
[INFO] [stderr]     Checking assert-json-diff v2.0.1
[INFO] [stderr]     Checking env_logger v0.7.1
[INFO] [stderr]     Checking futures-timer v3.0.2
[INFO] [stderr]     Checking fake v2.3.0
[INFO] [stderr]    Compiling quickcheck_macros v0.9.1
[INFO] [stderr]     Checking quickcheck v0.9.2
[INFO] [stderr]     Checking linkify v0.8.1
[INFO] [stderr]     Checking wiremock v0.5.13
[INFO] [stderr]    Compiling sqlx-macros v0.5.13
[INFO] [stderr]     Checking redis v0.21.5
[INFO] [stderr]     Checking sqlx v0.5.13
[INFO] [stderr]     Checking zstd v0.10.0+zstd.1.5.2
[INFO] [stderr]     Checking actix-http v3.0.4
[INFO] [stderr]     Checking actix-web v4.0.1
[INFO] [stderr]     Checking actix-files v0.6.0
[INFO] [stderr]     Checking tracing-actix-web v0.5.1
[INFO] [stderr]     Checking actix-web-flash-messages v0.3.2
[INFO] [stderr]     Checking actix-session v0.6.2
[INFO] [stderr]     Checking actix-web-lab v0.15.2
[INFO] [stderr]     Checking zero2prod v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/authentication/password.rs:58:15
[INFO] [stdout]    |
[INFO] [stdout] 58 |       let row = sqlx::query!(
[INFO] [stdout]    |  _______________^
[INFO] [stdout] 59 | |         r#"SELECT user_id, password_hash FROM users WHERE username = $1"#,
[INFO] [stdout] 60 | |         username,
[INFO] [stdout] 61 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/authentication/password.rs:58:15
[INFO] [stdout]    |
[INFO] [stdout] 58 |       let row = sqlx::query!(
[INFO] [stdout]    |  _______________^
[INFO] [stdout] 59 | |         r#"SELECT user_id, password_hash FROM users WHERE username = $1"#,
[INFO] [stdout] 60 | |         username,
[INFO] [stdout] 61 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/authentication/password.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 | /     sqlx::query!(
[INFO] [stdout] 101 | |         r#"UPDATE users SET password_hash = $1 WHERE user_id = $2"#,
[INFO] [stdout] 102 | |         password_hash.expose_secret(),
[INFO] [stdout] 103 | |         user_id
[INFO] [stdout] 104 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/authentication/password.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 | /     sqlx::query!(
[INFO] [stdout] 101 | |         r#"UPDATE users SET password_hash = $1 WHERE user_id = $2"#,
[INFO] [stdout] 102 | |         password_hash.expose_secret(),
[INFO] [stdout] 103 | |         user_id
[INFO] [stdout] 104 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/idempotency/persistence.rs:29:26
[INFO] [stdout]    |
[INFO] [stdout] 29 |       let saved_response = sqlx::query!(
[INFO] [stdout]    |  __________________________^
[INFO] [stdout] 30 | |         r#"
[INFO] [stdout] 31 | |         SELECT response_status_code as "response_status_code!", response_headers as "response_headers!: Vec<HeaderPairRecord>", response_...
[INFO] [stdout] 32 | |         "#,
[INFO] [stdout] 33 | |         user_id,
[INFO] [stdout] 34 | |         idempotency_key.as_ref()
[INFO] [stdout] 35 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/idempotency/persistence.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 | /     sqlx::query_unchecked!(
[INFO] [stdout] 76 | |         r#"UPDATE idempotency SET response_status_code = $3, response_headers = $4, response_body = $5 WHERE user_id = $1 AND idempotency...
[INFO] [stdout] 77 | |         user_id,
[INFO] [stdout] 78 | |         idempotency_key.as_ref(),
[INFO] [stdout] ...  |
[INFO] [stdout] 81 | |         body.as_ref()
[INFO] [stdout] 82 | |     ).execute(&mut transaction).await?;
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_unchecked` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/idempotency/persistence.rs:104:27
[INFO] [stdout]     |
[INFO] [stdout] 104 |       let n_inserted_rows = sqlx::query!(r#"
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 105 | |     INSERT INTO idempotency (user_id, idempotency_key, created_at) VALUES ($1, $2, now()) ON CONFLICT DO NOTHING"#,
[INFO] [stdout] 106 | |     user_id, idempotency_key.as_ref())
[INFO] [stdout]     | |______________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/idempotency/persistence.rs:29:26
[INFO] [stdout]    |
[INFO] [stdout] 29 |       let saved_response = sqlx::query!(
[INFO] [stdout]    |  __________________________^
[INFO] [stdout] 30 | |         r#"
[INFO] [stdout] 31 | |         SELECT response_status_code as "response_status_code!", response_headers as "response_headers!: Vec<HeaderPairRecord>", response_...
[INFO] [stdout] 32 | |         "#,
[INFO] [stdout] 33 | |         user_id,
[INFO] [stdout] 34 | |         idempotency_key.as_ref()
[INFO] [stdout] 35 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/idempotency/persistence.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 | /     sqlx::query_unchecked!(
[INFO] [stdout] 76 | |         r#"UPDATE idempotency SET response_status_code = $3, response_headers = $4, response_body = $5 WHERE user_id = $1 AND idempotency...
[INFO] [stdout] 77 | |         user_id,
[INFO] [stdout] 78 | |         idempotency_key.as_ref(),
[INFO] [stdout] ...  |
[INFO] [stdout] 81 | |         body.as_ref()
[INFO] [stdout] 82 | |     ).execute(&mut transaction).await?;
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_unchecked` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/idempotency/persistence.rs:104:27
[INFO] [stdout]     |
[INFO] [stdout] 104 |       let n_inserted_rows = sqlx::query!(r#"
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 105 | |     INSERT INTO idempotency (user_id, idempotency_key, created_at) VALUES ($1, $2, now()) ON CONFLICT DO NOTHING"#,
[INFO] [stdout] 106 | |     user_id, idempotency_key.as_ref())
[INFO] [stdout]     | |______________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/issue_delivery_worker.rs:103:15
[INFO] [stdout]     |
[INFO] [stdout] 103 |     let row = sqlx::query!(r#"SELECT newsletter_issue_id, subscriber_email FROM issue_delivery_queue FOR UPDATE SKIP LOCKED LIMIT 1"#)
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/issue_delivery_worker.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 119 |     sqlx::query!(r#"DELETE FROM issue_delivery_queue WHERE newsletter_issue_id = $1 AND subscriber_email = $2"#, issue_id, email)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/issue_delivery_worker.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 135 | ... = sqlx::query_as!(NewsletterIssue, r#"SELECT title, text_content, html_content FROM newsletter_issues WHERE newsletter_issue_id = $1"#, issue_id).fe...
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/routes/admin/dashboard.rs:49:15
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let row = sqlx::query!(r#"SELECT username FROM users WHERE user_id = $1"#, user_id)
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/issue_delivery_worker.rs:103:15
[INFO] [stdout]     |
[INFO] [stdout] 103 |     let row = sqlx::query!(r#"SELECT newsletter_issue_id, subscriber_email FROM issue_delivery_queue FOR UPDATE SKIP LOCKED LIMIT 1"#)
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/issue_delivery_worker.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 119 |     sqlx::query!(r#"DELETE FROM issue_delivery_queue WHERE newsletter_issue_id = $1 AND subscriber_email = $2"#, issue_id, email)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/routes/admin/newsletter/post.rs:86:16
[INFO] [stdout]    |
[INFO] [stdout] 86 |       let rows = sqlx::query_as!(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 87 | |         Row,
[INFO] [stdout] 88 | |         r#"
[INFO] [stdout] 89 | |         SELECT email FROM subscriptions WHERE status = 'confirmed'
[INFO] [stdout] 90 | |         "#,
[INFO] [stdout] 91 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/issue_delivery_worker.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 135 | ... = sqlx::query_as!(NewsletterIssue, r#"SELECT title, text_content, html_content FROM newsletter_issues WHERE newsletter_issue_id = $1"#, issue_id).fe...
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/routes/admin/newsletter/post.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 115 | /     sqlx::query!(r#"INSERT INTO newsletter_issues (newsletter_issue_id, title, text_content, html_content, published_at) VALUES ($1, $2, ...
[INFO] [stdout] 116 | |     issue_id,
[INFO] [stdout] 117 | |     title,
[INFO] [stdout] 118 | |     text_content,
[INFO] [stdout] 119 | |     html_content,
[INFO] [stdout] 120 | |     ).execute(transaction).await?;
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/routes/admin/dashboard.rs:49:15
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let row = sqlx::query!(r#"SELECT username FROM users WHERE user_id = $1"#, user_id)
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/routes/admin/newsletter/post.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 130 |     sqlx::query!(r#"INSERT INTO issue_delivery_queue (newsletter_issue_id, subscriber_email) SELECT $1, email FROM subscriptions WHERE status = 'confirmed'"#, issue_id).ex...
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/routes/admin/newsletter/post.rs:86:16
[INFO] [stdout]    |
[INFO] [stdout] 86 |       let rows = sqlx::query_as!(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 87 | |         Row,
[INFO] [stdout] 88 | |         r#"
[INFO] [stdout] 89 | |         SELECT email FROM subscriptions WHERE status = 'confirmed'
[INFO] [stdout] 90 | |         "#,
[INFO] [stdout] 91 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/routes/admin/newsletter/post.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 115 | /     sqlx::query!(r#"INSERT INTO newsletter_issues (newsletter_issue_id, title, text_content, html_content, published_at) VALUES ($1, $2, ...
[INFO] [stdout] 116 | |     issue_id,
[INFO] [stdout] 117 | |     title,
[INFO] [stdout] 118 | |     text_content,
[INFO] [stdout] 119 | |     html_content,
[INFO] [stdout] 120 | |     ).execute(transaction).await?;
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/routes/admin/newsletter/post.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 130 |     sqlx::query!(r#"INSERT INTO issue_delivery_queue (newsletter_issue_id, subscriber_email) SELECT $1, email FROM subscriptions WHERE status = 'confirmed'"#, issue_id).ex...
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/routes/newsletter.rs:146:16
[INFO] [stdout]     |
[INFO] [stdout] 146 |       let rows = sqlx::query_as!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 147 | |         Row,
[INFO] [stdout] 148 | |         r#"
[INFO] [stdout] 149 | |         SELECT email FROM subscriptions WHERE status = 'confirmed'
[INFO] [stdout] 150 | |         "#,
[INFO] [stdout] 151 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/routes/subscription_confirm.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | /     sqlx::query!(
[INFO] [stdout] 35 | |         r#"UPDATE subscriptions SET status = 'confirmed' WHERE id = $1"#,
[INFO] [stdout] 36 | |         subcriber_id,
[INFO] [stdout] 37 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/routes/subscription_confirm.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 52 |       let record = sqlx::query!(
[INFO] [stdout]    |  __________________^
[INFO] [stdout] 53 | |         "SELECT subscriber_id FROM subsciption_tokens WHERE subscription_token = $1",
[INFO] [stdout] 54 | |         token
[INFO] [stdout] 55 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/routes/subscriptions.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 115 | /     sqlx::query!(
[INFO] [stdout] 116 | |         r#"
[INFO] [stdout] 117 | |     INSERT INTO subscriptions (id, email, name, subscribed_at, status)
[INFO] [stdout] 118 | |     VALUES ($1, $2, $3, $4, 'pending_confirmation')
[INFO] [stdout] ...   |
[INFO] [stdout] 123 | |         Utc::now()
[INFO] [stdout] 124 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/routes/subscriptions.rs:213:5
[INFO] [stdout]     |
[INFO] [stdout] 213 | /     sqlx::query!(
[INFO] [stdout] 214 | |         r#"
[INFO] [stdout] 215 | |     INSERT INTO subsciption_tokens (subscriber_id, subscription_token)
[INFO] [stdout] 216 | |     VALUES ($1, $2)
[INFO] [stdout] ...   |
[INFO] [stdout] 219 | |         subscription_token,
[INFO] [stdout] 220 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/routes/newsletter.rs:146:16
[INFO] [stdout]     |
[INFO] [stdout] 146 |       let rows = sqlx::query_as!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 147 | |         Row,
[INFO] [stdout] 148 | |         r#"
[INFO] [stdout] 149 | |         SELECT email FROM subscriptions WHERE status = 'confirmed'
[INFO] [stdout] 150 | |         "#,
[INFO] [stdout] 151 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/routes/subscription_confirm.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | /     sqlx::query!(
[INFO] [stdout] 35 | |         r#"UPDATE subscriptions SET status = 'confirmed' WHERE id = $1"#,
[INFO] [stdout] 36 | |         subcriber_id,
[INFO] [stdout] 37 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/routes/subscription_confirm.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 52 |       let record = sqlx::query!(
[INFO] [stdout]    |  __________________^
[INFO] [stdout] 53 | |         "SELECT subscriber_id FROM subsciption_tokens WHERE subscription_token = $1",
[INFO] [stdout] 54 | |         token
[INFO] [stdout] 55 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `email_client::EmailClient`
[INFO] [stdout]  --> src/routes/admin/newsletter/post.rs:4:38
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{domain::SubscriberEmail, email_client::EmailClient};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::session_state::TypedSession`
[INFO] [stdout]  --> src/routes/admin/password/post.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::session_state::TypedSession;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::error::InternalError`
[INFO] [stdout]  --> src/routes/admin/password/post.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use actix_web::error::InternalError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]   --> src/routes/admin/password/post.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use uuid::Uuid;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::cookie::time::Duration`
[INFO] [stdout]  --> src/routes/login/get.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use actix_web::cookie::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::cookie::Cookie`
[INFO] [stdout]  --> src/routes/login/get.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use actix_web::cookie::Cookie;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HttpRequest`, `web`
[INFO] [stdout]  --> src/routes/login/get.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use actix_web::{web, HttpRequest, HttpResponse};
[INFO] [stdout]   |                 ^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Level`
[INFO] [stdout]  --> src/routes/login/get.rs:6:55
[INFO] [stdout]   |
[INFO] [stdout] 6 | use actix_web_flash_messages::{IncomingFlashMessages, Level};
[INFO] [stdout]   |                                                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_session::Session`
[INFO] [stdout]  --> src/routes/login/post.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use actix_session::Session;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]   --> src/routes/subscriptions.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use chrono::Utc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/routes/subscriptions.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 | ) -> Result<(Uuid), sqlx::Error> {
[INFO] [stdout]     |             ^    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 113 - ) -> Result<(Uuid), sqlx::Error> {
[INFO] [stdout] 113 + ) -> Result<Uuid, sqlx::Error> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `routes::admin_dashboard`
[INFO] [stdout]  --> src/startup.rs:7:32
[INFO] [stdout]   |
[INFO] [stdout] 7 |     email_client::EmailClient, routes::admin_dashboard, routes::change_password,
[INFO] [stdout]   |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::http::StatusCode`
[INFO] [stdout]  --> src/utils.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use actix_web::http::StatusCode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/routes/subscriptions.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 115 | /     sqlx::query!(
[INFO] [stdout] 116 | |         r#"
[INFO] [stdout] 117 | |     INSERT INTO subscriptions (id, email, name, subscribed_at, status)
[INFO] [stdout] 118 | |     VALUES ($1, $2, $3, $4, 'pending_confirmation')
[INFO] [stdout] ...   |
[INFO] [stdout] 123 | |         Utc::now()
[INFO] [stdout] 124 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/routes/subscriptions.rs:213:5
[INFO] [stdout]     |
[INFO] [stdout] 213 | /     sqlx::query!(
[INFO] [stdout] 214 | |         r#"
[INFO] [stdout] 215 | |     INSERT INTO subsciption_tokens (subscriber_id, subscription_token)
[INFO] [stdout] 216 | |     VALUES ($1, $2)
[INFO] [stdout] ...   |
[INFO] [stdout] 219 | |         subscription_token,
[INFO] [stdout] 220 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `email_client::EmailClient`
[INFO] [stdout]  --> src/routes/admin/newsletter/post.rs:4:38
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{domain::SubscriberEmail, email_client::EmailClient};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::session_state::TypedSession`
[INFO] [stdout]  --> src/routes/admin/password/post.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::session_state::TypedSession;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::error::InternalError`
[INFO] [stdout]  --> src/routes/admin/password/post.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use actix_web::error::InternalError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]   --> src/routes/admin/password/post.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use uuid::Uuid;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::cookie::time::Duration`
[INFO] [stdout]  --> src/routes/login/get.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use actix_web::cookie::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::cookie::Cookie`
[INFO] [stdout]  --> src/routes/login/get.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use actix_web::cookie::Cookie;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HttpRequest`, `web`
[INFO] [stdout]  --> src/routes/login/get.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use actix_web::{web, HttpRequest, HttpResponse};
[INFO] [stdout]   |                 ^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Level`
[INFO] [stdout]  --> src/routes/login/get.rs:6:55
[INFO] [stdout]   |
[INFO] [stdout] 6 | use actix_web_flash_messages::{IncomingFlashMessages, Level};
[INFO] [stdout]   |                                                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_session::Session`
[INFO] [stdout]  --> src/routes/login/post.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use actix_session::Session;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]   --> src/routes/subscriptions.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use chrono::Utc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/routes/subscriptions.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 | ) -> Result<(Uuid), sqlx::Error> {
[INFO] [stdout]     |             ^    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 113 - ) -> Result<(Uuid), sqlx::Error> {
[INFO] [stdout] 113 + ) -> Result<Uuid, sqlx::Error> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `routes::admin_dashboard`
[INFO] [stdout]  --> src/startup.rs:7:32
[INFO] [stdout]   |
[INFO] [stdout] 7 |     email_client::EmailClient, routes::admin_dashboard, routes::change_password,
[INFO] [stdout]   |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::http::StatusCode`
[INFO] [stdout]  --> src/utils.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use actix_web::http::StatusCode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Context`
[INFO] [stdout]  --> src/routes/admin/dashboard.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use anyhow::Context;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 17 previous errors; 14 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `zero2prod` (lib) due to 18 previous errors; 14 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused import: `anyhow::Context`
[INFO] [stdout]  --> src/routes/admin/dashboard.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use anyhow::Context;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 17 previous errors; 14 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `zero2prod` (lib test) due to 18 previous errors; 14 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "c672abe1bcc625ec1bd61906cd1383128620f553be85a6389806f3435898cea3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c672abe1bcc625ec1bd61906cd1383128620f553be85a6389806f3435898cea3", kill_on_drop: false }`
[INFO] [stdout] c672abe1bcc625ec1bd61906cd1383128620f553be85a6389806f3435898cea3
